在实际分析中, 往往有多个自变量决定一个因变量。多元线性回归方程如下: $$ \boldsymbol{Y}=\boldsymbol{X} \boldsymbol{\beta}+\boldsymbol{\varepsilon} $$ 该方程用矩阵形式表示, $\boldsymbol{Y}$ 是应变量的观察值, 是 $n$ 维列向量; $\boldsymbol{X}$ 是 $p$ 维自变量的数值, 考虑加上常数项, $\boldsymbol{X}$ 是 $n \times(p+1)$ 的矩阵; $\boldsymbol{\beta}$ 是 $(p+1)$ 维的系数列向量。可以通过矩阵 运算得到系数 $\boldsymbol{\beta}$ 的计算公式, 但手工计算是很困难的。

在R语言中仍然使用lm() 函数进行分析。

例 使用birthwt数据集, 研究新生儿体重的影响因素, 并根据这些因素的数值进行体重预测。

library(MASS)
data(birthwt)
birthwt.lm <- lm(bwt~age+lwt+as.factor(race)+smoke+ptl+ht+ui+ftv,data=birthwt)
summary(birthwt.lm)

结果

Call:
lm(formula = bwt ~ age + lwt + as.factor(race) + smoke + ptl + 
    ht + ui + ftv, data = birthwt)

Residuals:
     Min       1Q   Median       3Q      Max 
-1825.26  -435.21    55.91   473.46  1701.20 

Coefficients:
                 Estimate Std. Error t value Pr(>|t|)    
(Intercept)      2927.962    312.904   9.357  < 2e-16 ***
age                -3.570      9.620  -0.371 0.711012    
lwt                 4.354      1.736   2.509 0.013007 *  
as.factor(race)2 -488.428    149.985  -3.257 0.001349 ** 
as.factor(race)3 -355.077    114.753  -3.094 0.002290 ** 
smoke            -352.045    106.476  -3.306 0.001142 ** 
ptl               -48.402    101.972  -0.475 0.635607    
ht               -592.827    202.321  -2.930 0.003830 ** 
ui               -516.081    138.885  -3.716 0.000271 ***
ftv               -14.058     46.468  -0.303 0.762598    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 650.3 on 179 degrees of freedom
Multiple R-squared:  0.2427,    Adjusted R-squared:  0.2047 
F-statistic: 6.376 on 9 and 179 DF,  p-value: 7.891e-08

绘制结果:

par(mfrow = c(2,2))
plot(birthwt.lm)

回归模型为 bwt $\sim$ age $+\mathrm{lwt}+\mathrm{as}$.factor (race) $+$ smoke $+\mathrm{ptl}+\mathrm{ht}+\mathrm{ui}+\mathrm{ftv}$, 研究新生儿 体重 bwt 与母亲年龄 (age)、种族 (race) 等因素的影响, 在设计该模型时不一定包括全部变量, 有些因素的效应要大些, 而有些因素对体重没有影响, 因此因素变量的选择是个有挑战 性的问题, 也是对模型进行评价的问题。在本例中, 与新生儿体重相关的因素有种族 (race)、吸烟状态 (smoke)、高吕压史 (ht)、子宫行为 (ui)、母亲怀孕前体重 (lwt) 等, 它们的采样数据分析结果有统计学显著性,该结果与 anova(birthwt.lm)的结果是一致的。在该线性模型中还可以考虑将因素的交互作用加人, 类似用多因素方差分析构建线性模型。模型 评价用 R-squared: $0.2427$, Adjusted R-squared: $0.2047$ 的指标, 此外还可以使用 AIC (Akaike's Information Criterion)、BIC (Bayesian Information Criterion), 该例使用的 summary() 函数没有提供这两个指标。

对模型拟合结果进行作图得到,考察了误差 (residuals) 的分布情况, 从这些图可以判断该模型的合理性, 以及是否存在异常值或杜杆率点, 在本例中第 $226,188,16$ 等样本 点对结果的影响较大, 可以考虑去除这些点后再进行回归分析, 得到更合理的模型。

使用 factor()函数为分类变量c创建哑变量, 例如, 将变量 race 编码为 $1,2,3$, 分别表予 3 类, 在分析结果中出现 factor (race)1、factor(race) 2 两个新变量。在回归模型中有两个哑变量表示 3 个分类, 可以使用relevel()命令选择参考类型。

摘自: